<?php
trait HelloWorld {
    public function sayHello() {
        echo 'Hello World!';
    }
}

// 修改 sayHello 的访问控制
class MyClass1 {
    use HelloWorld { sayHello as protected; }
}

// 给方法一个改变了访问控制的别名
// 原版 sayHello 的访问控制则没有发生变化
class MyClass2 {
    use HelloWorld { sayHello as private myPrivateHello; }
}

$class1 = new MyClass1();
// $class1 -> sayHello();//访问控制已修改为 protected

$class2 = new MyClass2();
$class2 -> sayHello();//原版函数访问控制没改变
// $class2 -> myPrivateHello();// 重命名函数访问控制改变
?>
